home *** CD-ROM | disk | FTP | other *** search
/ Merciful 4 / Merciful - Disc 4.iso / software / p / psychotoads.dms / psychotoads.adf / a3 < prev    next >
Text File  |  1989-03-31  |  44KB  |  1,075 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                              3: THE EDITOR                                  11
  10.                      -----------------------------
  11.  
  12. The AMOS editor provides you with a massive range of editing
  13. facilities. Not only is it exceptionally powerful, but it's also
  14. delightfully easy to use. All commands can be executed either directly
  15. from the screen, or via an impressive range of simple keyboard
  16. alternatives. It's so friendly in fact, that if you've a little
  17. experience with computers, you'll propably be able to use it straight
  18. out of the box.
  19.  
  20.   One of the most exciting features of this sytem, is that the listing
  21. is displayed completely separately from your main program screen. So
  22. you can instantly flick from your program display to the editor window
  23. using a single keypress (ESCape).
  24.  
  25.   If you've plenty of memory, it's also possible to load several
  26. programs in AMOS Basic at a time. Each program can be edited totally
  27. independently, and it's possible to efforlessly switch between the
  28. various programs in memory by pressing just two keys from the editor.
  29.  
  30.   The first thing you see after AMOS has loaded into memory is a
  31. standard credit screen. Applause applause! Press a key to remove this
  32. window and enter the editor.
  33.  
  34.  
  35. The menu window
  36. ===============
  37. At the top of the screen, there's a menu window containing a list of
  38. the currently available commands. This forms the gateway to all AMOS
  39. Basic's powerful editing features. Command can be quickly executed by
  40. moving the mouse pointer over an item, and hitting the left mouse
  41. button. Each command is also assigned to a particular function key.
  42.  
  43.   In addition to the main menu, there are also a number of other menus.
  44. The most important of these menus is the SYSTEM menu. This can be
  45. brought into view by either holding down the right mouse button, or
  46. pressing the shift key from the keyboard.
  47.  
  48.   The SYSTEM manu contains a range of options such as LOAD, SAVE, NEW,
  49. etc. Like the main menu, all options can be executed using either the
  50. left mouse button, or by pressing an appropriate function key.
  51.  
  52.  
  53. The information line
  54. ====================
  55. I  L=1  C=1   Text=40000    Chip=91000    Fast=0    Edit:example
  56.  
  57. The markers at the far left display the editor mode ((I)nsert or
  58. (O)verwrite). There's also an indication of the (L)ine and (C)olumn you
  59. are presently editing. Alongside these markers is a list of three
  60. numbers:
  61.  
  62. TEXT: Measures the amount of memory which has been assigned to the
  63. editor window. This can be adjusted within AMOS Basic using a simple
  64. SET BUFFER command from the SEARCH MENU.
  65.  
  66. CHIP: Free Chipmem                                                          12
  67.  
  68. FAST: Free Fastmem; Whenever possible, this will be used.
  69.  
  70. EDIT: Displays the name of the program you are currently editing.
  71. Initially this area will totally blank, but when you load or save a
  72. program to disc, the new filename will be automatically entered to the
  73. information line.
  74.  
  75.  
  76. The editor window
  77. =================
  78. The editor window forms the heart of the AMOS system, and allows you to
  79. type your Basic program listings directly from the keyboard. All text
  80. is inserted at the current cursor position, which is indicated by a
  81. flashing horizontal line.
  82.  
  83.   At the start of your session, the cursor will always be placed at the
  84. top left hand corner of the editing window. It can be moved around the
  85. current line using the left and right cursor keys.
  86.  
  87.   Your line can be edited on a character by character basis using the
  88. Delete and Backspace keys. Delete erases the character immediately
  89. underneath the cursor, whereas Backspace deletes the character to the
  90. left of this cursor. As an example, type the line:
  91.  
  92.    print "AMOS"
  93.  
  94. When you press Return, your new line will be entered into AMOS Basic.
  95. Anything AMOS recognices as a command will be immediately converted to
  96. special format. All Basic commands begin with a Capital letter and
  97. continue in lower case. So the previous line will be displayed as:
  98.  
  99.    Print "AMOS"
  100.  
  101. Similarly, all AMOS variables and procedures are displayed in CAPITALS.
  102. This lets you quickly check whether you've made a mistake in one of
  103. your program lines. Supposing for instance, you'd entered a line like:
  104.  
  105.    inpit "What's your name;";name$
  106.  
  107. This would be displayed as:
  108.  
  109.    Inpit "What's your name;";NAME$
  110.  
  111. Since INPIT is in UPPER case, it's immediately obvious that you've made
  112. an error of some sort.
  113.  
  114.   Ok. Now for a little fun. Move the cursor under the Print command you
  115. entered a few moments ago and type in the following lines of Basic
  116. Instructions.
  117.  
  118.    centre "<Touch 'n' Type Demo>                                            13
  119.    do
  120.      x$=inkey$ : if x$ <> "" then print x$
  121.    loop
  122.  
  123. Don't forget to press the Return key after each and every line. Now
  124. move the cursor through your new program using the arrow keys. Finally,
  125. press the F1 to run this program.
  126.  
  127.   The EDITOR WINDOW will disappear and a separate PROGRAM display will
  128. flip into place. The program now expects you to type in some text from
  129. the keyboard. As you can see, the program screen has its own
  130. independent cursor line. This is totally separate to the one used by
  131. the editor. So you can play about as much as you like, without changing
  132. your current editing position.
  133.  
  134.   After you've finished, press CTRL+C to abort the program. A thin line
  135. will now be displayed over the screen. This can moved using the up and
  136. down cursor arrows.
  137.  
  138.      Program Interrupted at line 4
  139.   >>>Loop
  140.  
  141. Pressing the space bar at this point would return you back to editor.
  142. But since we've already seen the editor, let's have a brief look at the
  143. Direct mode instead. Hit the ESCape key to flip this mode into place.
  144.  
  145.  
  146. An introduction to Direct mode
  147. ==============================
  148. DIRECT mode provides you with an easy way of testing your Basic
  149. programs. For the time being, we'll examine just a couple of its more
  150. interesting features.
  151.  
  152.   All direct mode commands are entered into a special screen which is
  153. completely indepentent from the program display. You can move this
  154. screen up or down using the arrow keys.
  155.  
  156.   At the top of the window, there's a list of 20 function key
  157. assignments. These represent a list of commands which have been
  158. previously assigned to the various function keys. They can be accessed
  159. by hitting the left or right Amiga-keys in combination with one of the
  160. various function keys.
  161.  
  162.   Whilst you're in direct mode, you can execute any Basic instructions
  163. you like. The only exceptions are things like loops or procedures. As
  164. with the editor, all commands should be entered into the computer by
  165. pressing the Return key. Here are some examples:
  166.  
  167.    Print 42
  168.    ANSWER=6. Print ANSWER*9
  169.    Curs Off
  170.    Close Workbench               (Saves around 40k but ABORTS multi-
  171.                                   tasking operations!)
  172.  
  173.  
  174. It's important to recognize that no matter what you do in direct mode,
  175. there will be absolutely no effect on the current program listing. So
  176. you can mess about to your heart's content, with no risk of deleting
  177. something in your Basic program.
  178.  
  179.   It's now time to return to the Editor window. So wave a fond farewell
  180. to Direct mode, and enter the editor by pressing ESCape.
  181.  
  182.  
  183. Loading a program                                                           14
  184. =================
  185. We'll now discuss the various procedures for loading and saving your
  186. programs on the disc. As usual, these options can be executed either
  187. from the MENU window or using a range of simple two-key commands from
  188. the editor. The fastest way to load a program is to hold down either of
  189. Amiga keys, and press the letter L.
  190.  
  191.   You'll now be presented with the standard AMOS file selector window.
  192. Nowadays, file selectors have become a familiar part of most packages
  193. available on the Amiga. So if you've used one before, the AMOS system
  194. will hold no real surprises. However, since the file-selector is such
  195. an integral part of AMOS Basic, it's well worth explaining it in some
  196. detail.
  197.  
  198.  
  199. The AMOS file selector
  200. ======================
  201. Selecting a file from the disc couldn't be easier. Simply move the
  202. cursor over the required filename so that it's highlighted in reversed
  203. text. To load this file into memory, click twice on the left mouse
  204. button. Alternatively, you can enter the name straight from the
  205. keyboard, and just press Return.
  206.  
  207.   If you make a mistake, and wish to leave the selector without loading
  208. a file, move the mouse over the Quit button and select it with the left
  209. button. AMOS will abort your operation and display a "Not Done" message
  210. on the information line.
  211.  
  212.   As an example, place you COPY of the AMOS program disc into the
  213. internal drive and press AMIGA+L to load a file. If you've been
  214. following out tutorial, AMOS will give you the option of saving the
  215. existing program first. Unless you've made any interesting changes,
  216. press "N" to anter the file-selector. Otherwise, see "saving a program"
  217. for further instructions.
  218.  
  219.   When the file selector appears, look out for a file with the name
  220. "Hithere.AMOS". Once you've found it, load it. The following listing
  221. will be loaded to amos basic.
  222.  
  223.         Rem Hi there AMOS users
  224.         Cls 0 : Rem Clear the screen with colour zero
  225.         Do
  226.           Rem get some random numbers
  227.           X=Rnd(320):Y=Rnd(200):I=Rnd(15):P=Rnd(15)
  228.           Ink I,P : Rem add a little colour
  229.           Text X,Y,"Hi there!" : Rem graphic text
  230.         Loop
  231.  
  232. Move the text cursor over the text "Hi There!" and insert you own
  233. message. Now press F1 to run the program. The program display will
  234. rapidly fill up with dozens of copies of your text. Press CTRL+C to
  235. exit from this routine.
  236.  
  237.  
  238. Saving a Basic program                                                      15
  239. ======================
  240. Return to the editor window, and type ALT+S to save your current
  241. program onto the disc. If you feel like a change, hold down the right
  242. mouse key and click on the "Save as" option from the SYSTEM menu with
  243. the left button. Either way you'll jump straight back to the AMOS file
  244. selector window.
  245.  
  246.   You should now enter the name of your new file straight from the
  247. keyboard. As you type, your letters will appear in a small window at
  248. the bottom of the selector. Like the editor, there's a cursor at the
  249. current typing position. This cursor can be moved around using all the
  250. normal editing keys Finally, press Return to save your prog to disc.
  251.  
  252.  
  253. Scrolling through your files
  254. ============================
  255. If your disc is reasonably full, the standard selection window won't be
  256. able to list the entire contents of your disc at once. You can page
  257. through the listing using the scroll bar to the left of the selection
  258. window.
  259.  
  260.  
  261. Changing the current drive
  262. ==========================
  263. To the right of the file window, there's a list of drive names. The
  264. precise contents of the window will naturally depend on the devices
  265. you've connected to your Amiga. If you have several drives, you can
  266. switch between them by simply clicking on the appropriate name. The
  267. directory of this drive wlil now be entered into the selection window.
  268.  
  269.  
  270. Changing the directory
  271. ======================
  272. When you search through the directly listing, you'll discover several
  273. names with an asterix character "*" in front of them. These are not
  274. files at all. They are entire directories in their own right.
  275.  
  276.   You can enter one of these folders by selecting them with the left
  277. mouse button. You may then choose your files directly from this folder.
  278. Note that only the files with the current extension ".AMOS" will be
  279. displayed.
  280.  
  281.   Once you've opened a directory, you can set it as the default using
  282. the SETDIR button. The next time you enter the file selector or obtain
  283. a directory listing with DIR, your chosen folder will be entered
  284. automatically. Similarly, you can move back to the previous directory
  285. by clicking on the PARENT button.
  286.  
  287.  
  288. Setting the search path
  289. =======================
  290. Normally, AMOS will search for all filenames with the extension
  291. ".AMOS". If you want to laod a file with another extension such as
  292. .BAK, you can edit the search pattern directly. This can be acomplished
  293. in the following way.
  294.  
  295.   Move the text cursor to the PATH window by pressing with the up arrow
  296. from the keyboard. Now type your new path and hist Return. A full
  297. description of the required syntax can be found in the section on the
  298. DIR command.
  299.  
  300.   WARNING!: AMOS uses its own individual search patterns which are very     16
  301. different from the standard Amiga Dos System. If you're unsure, delete
  302. the entire line up to the current VOLUME or DRIVE name and hit Return.
  303. This will present you with a full list of ALL the files on the present
  304. disc.
  305.  
  306.  
  307. Using the file selector
  308. =======================
  309. Interestingly enough, it's also possible to call this file-selector
  310. directly from your own programs. For a demonstration, enter DIRECT mode
  311. and type the following line:
  312.  
  313.     Print Fsel$(*.*)
  314.  
  315. After you've chosen a file, the name you've selected will be printed
  316. straight onto screen! See FSEL$ for a detailed explanation of this
  317. command.
  318.  
  319.  
  320. Editor tutorial
  321. ===============
  322. We'll now have a brief look at some of the more advanced editing
  323. features available from the AMOS editor. We'll start by loading an
  324. example program from the disc. Just for a challenge, we've placed this
  325. in a separate MANUAL folder on the AMOS program disc.
  326.  
  327.   Insert your COPY of the program disc into your Amiga'
  328.  
  329.  
  330. Scrolling through a listing
  331. ===========================
  332. Alongside the main editor window are two "scroll bars". These allow you
  333. to page through your listing with the mouse.
  334.  
  335.   Move the mouse pointer over the Vertical bar and hold down the left
  336. button. Now drag the bar down the screen. The editor window will
  337. scrolls moothly downwards through the listing. You can also scroll the
  338. program using the Arrow Icons at the top and bottom of this bar.
  339. Clicking on these icons moves the line exactly one place in the
  340. required direction.
  341.  
  342.   At the far bottom of the editor window, there's a horizonal scroll
  343. bar. This can be used to move the window left and right in exactly the
  344. same way.
  345.  
  346.   If you prefer to use the keyboard for your editing, you'll be pleased
  347. to discover that there are dozens of equivalent keyboard options as
  348. well. For example;
  349.  
  350.   CTRL+UP Arrow    shift the listing to the previous page.
  351.   CTRL+DOWN Arrow  moves the listing to the next page
  352.  
  353. All the keyboard options obey the same basic principles. So once you've
  354. familiarised yourself with one command, the rest are easy. A full list
  355. of these commands can be found towards the end of this chapter.
  356.  
  357.   Now we've looked at the program. It's time to actually change
  358. something. Search through the program listing until you find the line:
  359.  
  360.         ALERT[50,"Alert box","","Ok","Cancel",1,2]
  361.  
  362. This calls a Basic procedure which displays a working alert box on the
  363. screen. The format of this procedure is:
  364.  
  365.         ALERT[Y coord,Title 1$,Title 2$,Button 1$,Button 2$,Paper,Ink]
  366.  
  367. Let's change this alert to something a little more exciting. Move the
  368. cursor over the above statement, and edit the line with the cursor keys
  369. so that it look like so:
  370.  
  371.         ALERT[50,"Exterminate!","Securitate","Yep!","Yep!",1,3]
  372.  
  373. Execute the program by pressing F1 or selecting RUN from the main menu.
  374. You'll be given the unique option of stopping the lamest Amiga-group in
  375. the World in its tracks. Select a button with the mouse and make your
  376. choice!
  377.  
  378.   In practive, you can change the title and the buttons to literally
  379. anything you like. Feel free to use this routine in your own progs.
  380.  
  381.   Hopefully, the above example will have provided you with a real spur
  382. to use procedures in your own programs. In order to aid you in this
  383. task, we've built a powerful range of special editing features into the
  384. AMOS editor.
  385.  
  386.  
  387. Label/procedure searches                                                    17
  388. ========================
  389. If your program is very long, it can be quite hard to find the starting
  390. points of your various procedure definitions. We've therefore included
  391. the ability to jump straight to the next procedure definition in your
  392. program, using just two keys (Alt+Arrow)
  393.  
  394.   For an example, place the cursor at the start of the listing and
  395. press Alt+down arrow. Your cursor will be immediately moved to the
  396. beginning of the first procedure definition in the current program
  397. (ALERT). You can repeat this process to jump to each procedure
  398. definition in turn.
  399.  
  400.   This system is not just limited to procedures of course. It also
  401. works equally well with Labels or line numbers. So even if you don't
  402. need procedures, you'll still find a use for this feature.
  403.  
  404.  
  405. Folding a procedure definition                                              18
  406. ==============================
  407. If you build up your programs out of a list of frequently used
  408. procedures, your lisings an easily be cluttered with the definitions of
  409. all your various library routines.
  410.  
  411.   Fortunately, help is at hand. With a simple call to the Fold command,
  412. you can hide away any of your procedure definitions from your listings.
  413. These routines can be used in your program as normal, but their
  414. definitions will be replaced by a single Procedures statement. Example:
  415.  
  416.   Position the cursor anywhere in the definition of ALERT and click on
  417. the Fold/Unfold option from the menu window. Bing! The contents of your
  418. procedure will vanish into thin air! Despite this, you can run the
  419. program with no ill effects. The only change has been in the appearance
  420. of the listing in the editor window.
  421.  
  422.   Just select Fold/Unfold again, and your procedure will be expanded to
  423. it's fully glory.
  424.  
  425.   It's also possible to fold ALL the procedures in your program at
  426. once. This uses an option on the SEARCH menu called "Close All". To
  427. bring the Search menu onto the screen, click on the button with the
  428. same name, or press F5 from the keyboard. Now select the Close All
  429. button to remove the procedure definitions from the current program.
  430.  
  431.   The effect on EXAMPLE 3.1  is dramatic! The entire program now fits
  432. into just a single screen. So you can instantly see the procedures
  433. we've been using in the program. Each procedure definition can be
  434. edited individually by expanding it with the Fold/Unfold button. Or you
  435. can unfold the whole program with "Open All" from the Search menu.
  436.  
  437.  
  438. Search/Replace
  439. ==============
  440. The search/replace commands provided by the AMOS Basic editor are
  441. accessed through a special Search menu which can be called up either
  442. from the menu window or by pressing function key F4.
  443.  
  444.  
  445. Finding an item
  446. ===============
  447. We will continue our tutorial with a brief look at of some of the
  448. Search/replace instructions. Let's start with the FIND command.
  449.  
  450.   This can be executed either directly from the Search menu or using
  451. the keys CTRL+F. When you select this command, you'll be asked to enter
  452. the search string.
  453.  
  454.   For example, hit CTRL+F and type "Rem" at the prompt. AMOS ill now
  455. search for the next "Rem" statement in your program, starting from the
  456. current cursor position. If the search is succesful, then cursor will
  457. be replaced over the requested item.
  458.  
  459.   The search can now be repeated from this point with the "Find Next"
  460. option (CTRL+N).
  461.  
  462.  
  463. Replace
  464. =======
  465. Supposing we wanted to change all the Rem statements in a program with
  466. the equivalent "'" characters. This could be accomplished with the
  467. "Replace" command. 
  468.  
  469.   In order to use this option, it's necessary to define the replacement
  470. string. So the first time you call up replace, you will always be asked
  471. to enter this string from the keyboard. 
  472.  
  473.   Press CTRL+R, type in ' (apostophe) at the prompt and hit the return
  474. key to enter it into the computer. You now set the search string with
  475. the "Find" option like so:
  476.  
  477.   * Press CTRL+F to select the FIND option.
  478.   * Type "Rem" into the information line.
  479.   * The cursor will then be moved straight to the next Rem statement in
  480.     your program listing.
  481.  
  482. To change this to the replacement string and jump to the next
  483. occurrence, select Replace (CTRL+R) once again. Alternatively, if the
  484. Rem is in the middle of the line, you'll need to skip it, because AMOS
  485. only allows you to substitute a quote for this command at the start of
  486. a line. You can avoid this problem and jump directly to the next item
  487. in your program using "Find Next".
  488.  
  489.  
  490. Cut and paste                                                               19
  491. =============
  492. The AMOS Block commands allow you to cut out parts of your programs and
  493. save them in memory for future use. Once you've created a block, you
  494. can copy it anywhere you like in the current listing.
  495.  
  496.   Here's an example of this feature in action. Let's take the previous
  497. ALERT program, and cut out a single procedure. Place the mouse pointer
  498. over the first line of the INVERT procedure, and depress the right
  499. mouse button. We can now enter this procedure into a block using the
  500. mouse. As you move the mouse, the selected area will be highlighted in
  501. reverse.
  502.  
  503.   We can now grab this area into memory using "Cut". When you press
  504. CTRL+C from the keyboard, the procedure will be removed from the
  505. listing and stored into memory. It's now possible to paste this block
  506. anywhere you like in your program. For the purposes of our example,
  507. move the text cursor down to the bottom of the listing, and call the
  508. Paste optin with CTRL+P. The INVERT procedure wlil now be copied to the
  509. current cursor position.
  510.  
  511.  
  512. Multiple programs and accessories
  513. =================================
  514. Multiple programs
  515. -----------------
  516. Although AMOS only allows you to edit a single program at a time,
  517. there's no limit to the number of programs which can be installed into
  518. memory, other than the amount of available storage space. Once you've
  519. installed a program in this way, you can execute it straight from
  520. Editor window with the "Run Other" option.
  521.  
  522.   Supposing, for instance, you encounter a problem in one of your
  523. programs. AMOS will let you effortlessly swap your existing program
  524. into memory so that you can freely experiment with the various
  525. possibilities until you find a solution. After you've finished, you can
  526. now grab your new routine into memory with the cut option, and flick
  527. back into your original program by pressing just two keys! The new
  528. routine can the be pasted into position, and you can continue with your
  529. program as before. The ability to stop everything and try out your
  530. ideas immediately, is incredibly valuable in practice.
  531.  
  532.   Another possibility is to permanently keep all the most commondly
  533. neede utilities such as the sprite definer or the map editor in the
  534. memory. You can now access these utilities instantaneously, whenever
  535. you need them.
  536.  
  537.   In fact, AMOS includes a special ACCESSORY system which makes this
  538. even easier. The utility programs can be given total access to all the
  539. memory banks in your main programs. So the sprite definer can grab the
  540. images straight from your current program, and modify them directly.
  541. This tehcnuque speeds up the overall development process by an amazing
  542. degree!
  543.  
  544.   Let's have a quick demonstration of these facilities. Enter the
  545. following small prog into the editor:
  546.  
  547.         Print "This is program One"
  548.         Boom
  549.  
  550. We can now push this program into memory using the push command. This
  551. is called up by pressing AMIGA+P. You'll then be asked to enter the
  552. name of your program from the information line. Type in a name like
  553. "Program1" at this point. The edit screen will be cleared completely.
  554. The new window is totally separated from your original program. As a
  555. demonstration, enter a second routine like so:
  556.  
  557.         Print "This is program Two"
  558.         Shoot
  559.  
  560. This program can now be executed from the editor window using RUN (F1).     20
  561. But when your return you can immediately jump to the old one with the
  562. "Flick" option. Try pressing AMIGA+F. As before, you'll be asked to
  563. enter a name for your program. Use a name like "program2" for this
  564. purpose. The editor will now jump straight to your original program as
  565. if by magic. It's possible to repeat this process to jump back and
  566. forth between the two programs. Each program is entirely independent
  567. and can have it's list of own banks and program screens.
  568.  
  569.   So far, we've only discussed how you can use two programs at a time.
  570. However, you can actually have as many program in memory as you like.
  571. These programs can be selected individually using the "Run Other" and
  572. "Edit Other" options from the Menu window. When you call these
  573. commands, a special "program" selector will be displayed on the screen.
  574.  
  575.   The program selector is almost identical to the familiar AMOS file
  576. selector. The only difference is that it allows you to choose a program
  577. from memory rather than from the disc. You can select a program by
  578. simply highlighting it with the mouse cursor and clicking once on the
  579. left button.
  580.  
  581.  
  582. Accessories
  583. -----------
  584. In order to distinguish accessories from normal Basic programs, they're
  585. assigned a ".ACC" extension instead of the more usual ".AMOS".
  586. Accessories can be loaded into memory like any normal program using the
  587. "Load Other" command.
  588.  
  589.   Load Other presents you with a normal fileselector which can be used
  590. to load an accessory program from the disc. After the accessory has
  591. been installed into memory you will be returned straight back to your
  592. current program. You can now run this accessory at any time using the
  593. Run Other option from the menu window. Simply move the mouse pointer
  594. over your required accessory and press the left button.
  595.  
  596.   Alternatively, you can load all the accessories from the current disc
  597. using the Accnes/Load feature. This option can be found on the System
  598. menu which is displayed when you hold down the right mouse button.
  599. Accnew/Load erases all existing accessories and loads a new set from
  600. the current disc.
  601.  
  602.   For a demonstration, place the AMOS Program disc into your drive, and
  603. click on the Accnew/Load button from the System menu.
  604.  
  605.  The HELP accessory will be quickly loaded into memory. HELP is a
  606. special accessory because it can be called up directly by pressing the
  607. HLEP key. We've packed this program with all the information you'll
  608. need about the accessor yprograms supplied with AMOS Basic. All you
  609. need to do, is just follow the prompts which will be displayed on the
  610. screen.
  611.  
  612.  
  613. Direct mode                                                                 21
  614. ===========
  615. The Direct mode window can be entered from the editor by pressing the
  616. ESCape key at any time. As a default, the window is displayed in the
  617. lower half of the screen, with the program screen in the background.
  618.  
  619.   If you run a program that changes the screen format, displays
  620. windows, animates sprites etc, then all this screen data will remain
  621. intact. So you can move the DIRECT window around or flip back to the
  622. editor to make program changes without destroying the current program
  623. screen. This DIRECT mode window is totally independent and is displayed
  624. on its own front level screen.
  625.  
  626.   Whilst you're within direct mode you can type any line of AMOS Basic
  627. you wish. The only commands you cannot use are loops and branch
  628. instructions. You only have access to normal variables (as distinct
  629. from the loca bariables defined in a procedure).
  630.  
  631.  
  632. Direct mode editor keys
  633. =======================
  634.         ESCape          Jump to the editor window
  635.         Return          Executes the current line of commands
  636.         DELete          Delete character under cursor/
  637.         Backspage       Delete character to the left of the cursor
  638.         Left Arrow      Move cursor left
  639.         Right Arrow     Move cursor right
  640.         Shift+Left      Skip a word to the left
  641.         Shift+Right     Skip a word to the right
  642.         Shift DELete    Deletes entire line.
  643.         Shift BACK      Ditto
  644.         Help            Displays the function key definitions to the
  645.                          direct window.
  646.         F1  to F10      These keys remember the last 10 lines you've
  647.                         entered from the direct mode. F1 displays the
  648. latest one entered, F2 the second to last, etc. The memory area used by
  649. this system is always cleared when you return to the editor window or
  650. run one of your programs.
  651.  
  652.  
  653. The menu window                                                             22
  654. ===============
  655. There's a detailed explanation of all the options which are available
  656. from the main menu window.
  657.  
  658.  
  659. Default menu
  660. ------------
  661. This gives you various commands that allow you to operate the editor,
  662. plus give you access to the block and search menus.
  663.  
  664. RUN         (F1) Runs the current program in memory
  665. TEST        (F2) Cheks the program syntax
  666. INDENT      (F3) Takes the current program and indents the listing.
  667. BLOCKS MENU (F4) Displays the Blocks menu.
  668. SEARCH MENU (F5) Displays the Search menu
  669. RUN OTHER   (F6) Runs a program or accessory in memory
  670. EDIT OTHER  (F7) Edits a program which has previously installed into
  671.                  memory using the "Load Other" or "Accnew/Load".
  672. OVERWRITE   (F8) Toggles between insert and overwrite -editing modes.
  673. FOLD/UNFOLD (F9) Takes a procedure definition and folds it away inside
  674.                  your program listing. 
  675.  
  676.   Normally, it's possible to re-open a folded procedure by repeating
  677. the process. Place the cursor over a folded procedure and click on
  678. FOLD/UNFOLD. If you feel the need for extra security you can also call
  679. up a special LOCK accessory from the AMOS Program disc. This will ask
  680. for a code word, and will lock your procedures so that they can't be
  681. subsequently examined from AMOS Basic. Simply fold your required
  682. proceduers and load FOLD.ACC using the LOAD OTHERS command. Full
  683. instructions are included with the utility.
  684.  
  685.   The real beauty of this system is that it allows you to create whole
  686. libraries of your routines on the disc. These can be loaded into memory
  687. as a separate program (See LOAD OTHER). You can now cut out the routine
  688. you need and copy them directly into your main program. So once you've
  689. written a routine, ou can place it into a procedure and reuse it again
  690. and again.
  691.  
  692.   If you're intending to use this sytem, there are several points to
  693. concider.
  694.  
  695.   * Whenever you fold or unfold a procedure a syntax check is made of
  696.     the entire program. If an error occurs the operatoni will not be
  697.     performed. So it's vital that you keep back-up copies of all your
  698.     procedures in Unfo
  699.  
  700. The system menu                                                             24
  701. ---------------
  702. LOAD        (SFT+F1 / AMIGA+L) Loads an AMOS Basic Program
  703. SAVE        (SFT+F2 / AMIGA+S) Saves the current Basic Program
  704. SAVE AS     (SFT+F3 /SFT+AM+S) Saves the prog with another name
  705. MERGE       (SHIFT+F4)         Enters the chosen prog at the current
  706.                          csrs position without erasing the current
  707.                          program.
  708. MERGE ASCII (SHIFT+F5)   Merges an Ascii version of an AMOS Basic           25
  709.                          program with the existing program in memory
  710. AC.NEW/LOAD (SHIFT+F6)   Enters a new accessory set from the disc
  711. LOAD OTHERS (SHIFT+F7)   Loads a single accessory from the disc 
  712. NEW OTHERS  (SHIFT+F8)   Erases accessorie(s) from memory
  713. NEW         (SHIFT+F9)   Erases the current program from memory
  714. QUIT        (SHIFT+F10)  Exits AMOS and returns control to the CLI
  715.  
  716.  
  717. The blocks menu
  718. ---------------
  719. BLOCK START (CTRL + B/F1) Sets the starting point for the current block
  720. BLOCK END   (CTRL + E/F6) Defines the end of a block
  721. BLOCK CUT   (CTRL + C/F2) Removes the selected block into memory            26
  722. BLOCK PASTE (CTRL + P/F7) Pastes the block to the current csrs position
  723. BLOCK MOVE  (CTRL + M/F3) Move the block to the current cursor position
  724.                           erasing the original version completely
  725. BLOCK STORE (CTRL + S/F8) Copies the block into memory.
  726. BLOCK HIDE  (CTRL + H/F4) Deselects the block you've highlighted
  727. BLOCK SAVE  (CTRL + F9 )  Saves the current block on the disc as an
  728.                           AMOS program
  729. SAVE ASCII  (CTRL + F5 )  Stores your selected block on the disc as
  730.                           a normal text file.
  731. BLOCK PRINT (CTRL + F10)  Outputs the selected block to the printer
  732.  
  733.  
  734. The search menu
  735. ---------------
  736. FIND        (ALT + F1)    Enters a string of up to 32 chars and
  737.                           searches through your text until a match is
  738.                           found.
  739. FIND NEXT   (ALT + F2)    Searches for the next match you specified
  740. FIND TOP    (ALT + F3)    Searches from the top of program the string
  741.                           rather than starting from the crsr position
  742. REPLACE     (ALT + F4)    Activates REPLACE mode. The effect of this
  743.                           command varies depending when it's used:
  744.    * Before a FIND
  745.                    You'll now be asked to enter the replacement 
  746.                    string from the keyboard
  747.    * After a FIND  
  748.                   If the search operation was succesful, the text and
  749.                   the current cursor position will be swapped with the
  750.                   replacement string. REPLACE will now jump to the next
  751.                   occurrence of the search string.
  752.  
  753. REPLACE ALL (ALT + F5)    Replaces ALL copies of a word in your prog.
  754. LOW <> UP   (ALT + F6)    Changes the case sensitivity used in search
  755.                           commands
  756. OPEN ALL    (ALT + F7)    Opens all closed procedures in your program
  757. CLOSE ALL   (ALT + F8)    CLoses all procedures in your program
  758. SET TEXT B  (ALT + F9)    SET TEXT BUFFER. Changes the # of chars 
  759.                           available to hold your listings.
  760. SET TAB     (ALT + F10)   Sets the number of chars which the crsr will
  761.                           be moved when the user presses the TAB key.
  762.  
  763.  
  764. Keyboard macros                                                             28
  765. ---------------
  766.  
  767.  
  768.                    =KEY$= (define a keyboard macro)
  769.  
  770. KEY$(n)=command$
  771. command$)=KEY$(n)
  772.  
  773. KEY$ assigns the contents of command$ to function key number n. (1-20)
  774. Keys from one to ten are accessed by pressing the function key in
  775. conjuction with the left Amiga button. Similarly, numbers from eleven
  776. onwards are called with a right Amiga Fn combination.
  777.  
  778.   Command$ can be any string of text you wish, up to maximum of 20
  779. characters. There are two special characters which are directly
  780. interpreted by this function:
  781.  
  782. ' (Alt+Quote)     Generates a Return code
  783. ' (single Quote)  Encloses a comment. This is only displayed in your
  784.                   key lists. It's totally ignored by the macro routine.
  785.                   Examples:
  786.  
  787.    ? Key$(1)
  788.    Key$(2)="Default"
  789.    Alt+F2
  790.  
  791.    Key$(3)="'Comment print"
  792.  
  793. In practice, this macro system can prove incredibly useful. Not only
  794. can you speed up the process of entering you Basic programs, but you
  795. can also define a list of standard inputs for your Basic programs.
  796. These would be extremely effective in an adventure game, as can be seen
  797. from the program EXAMPLE 3.2 in the MANUAL folder.
  798.  
  799.   If you wish to generate a keypress which has no ASCII equivalent such
  800. as up arrow, you can optionally include a scancode in these macros.
  801. This is achieved using the SCAN$ function.
  802.  
  803.  
  804.  
  805.              =SCAN$ (return a scan code for use with KEY$)                  29
  806.  
  807. x$=Scan$(n,[,m])
  808.  
  809. n is the scancode of a key to be used in one of your macro definitions.
  810. m is an optional mask which sets the special keys such as CTRL or Alt,
  811. in the following format:
  812.  
  813.         Bit  Key Tested     Notes
  814.         ---  ----------     -----
  815.         0    Left SHIFT
  816.         1    Right SHIFT
  817.         2    Caps Lock      Either ON or OFF
  818.         3    CTRL
  819.         4    Left ALT
  820.         5    RIght ALT
  821.         6    Left AMIGA     Commodore key on some keyboards
  822.         7    Right AMIGA
  823.  
  824. If a bit is set to a one, then the associated button is depressed in
  825. your macro. Examples:
  826.  
  827.         KEY$(4)="Wheee!"+Scan$($4C)
  828.         KEY$(5)="Page Up!"+Scan$($4C,%00010000)
  829.  
  830.  
  831.  
  832. Conserving memory                                                           30
  833. =================
  834.  
  835.  
  836.                 CLOSE WORKBENCH (closes the workbench)
  837.  
  838. CLOSE WORKBENCH
  839.  
  840. Closes the workbench screen saving around 40K of memory for your
  841. programs! Example:
  842.  
  843.         Print Chip Free,Fast Free
  844.         Close Workbench
  845.         Print Chip Free,Fast Free
  846.  
  847. CLOSE WORKBENCH can be executed either from direct mode, or inside on
  848. of your Basic programs. A Typical program line might be:
  849.  
  850.         If Fast Free=0 Then Close Workbench
  851.  
  852. This would check for a memory expansion and close the Workbench if
  853. extra memory was not available.
  854.  
  855.  
  856.  
  857.  
  858.                   CLOSE EDITOR (close editor window)
  859.  
  860. CLOSE EDITOR
  861.  
  862. Closes the Editor window while your program is running, saving you more
  863. than 28K of memory. Furthermore, there's absolutely NO effect on your
  864. program listings!
  865.  
  866.   If there's not enough memory to reopen the window after your program
  867. has finished, AMOS will simply erase your current display and revert
  868. back to the standard DEFAULT screen. You'll now be able to effortlessly
  869. jump back to the Editor with the ESCape key as normal. What a terrific
  870. little instruction!
  871.  
  872.  
  873. Inside accessories
  874. ==================
  875. We'll now explore the general techniques required to write your own
  876. accessory programs. These are really just specialised form of the
  877. multiple programs we discussed a little earlier. As you would expect,
  878. they can incorporate all the standard Basic instructions.
  879.  
  880.   Accessories are displayed directly over your current program screen
  881. and the music, sprite, or bob animations are automatically removed from
  882. the screen.
  883.  
  884.   Your accessory should therefore check the dimensions and type of this
  885. screen using the SCREEN HEIGHT, SCREEN WIDTH and SCREEN COLOUR commands
  886. during its initialisation phase. If the current screen isn't
  887. acceptable, you may be forced to open a new screen for the accessory
  888. window or to erase the existing screens altogether with a DEFAULT
  889. instruction.
  890.  
  891.   Any memory banks used by your accessory are totally independent of
  892. the main program. If it's necessary to change the banks from the
  893. current program, you can call a special BGRAB command.
  894.  
  895.  
  896.  
  897.           BGRAB (grabs the banks used by the current program)               31
  898.  
  899. BGRAB b
  900.  
  901. BGRAB "borrows" a bank from the current program and copies it into the
  902. same bank in your accessory. If this accessory bank already exists, it
  903. will be totally erased. When the accessory returns to the editor, the
  904. bank you have grabbed will be automatically returned to your main
  905. program along with any changes. b is the number of a bank from 1 to 16.
  906.  
  907.   Note that this instruction can only be used inside an accessory. If
  908. you try to include it in normal program, you'll get an appropriate
  909. error message.
  910.  
  911.  
  912.  
  913.                    PRUN (run a program from memory)
  914.  
  915. PRUN "name"
  916.  
  917. Executes a Basic program which has been previously installed in the
  918. Amiga's memory. This command can be used either from the direct mode,
  919. or within a program! In effect, PRUN is very similar to a standard
  920. procedure call, except that any bobs, sprites or music will be totally
  921. suspended.
  922.  
  923.   Note that it's impossible to call the same program twice in the same
  924. session. After you've called it once, any further attempts will ignored
  925. completely.
  926.  
  927.  
  928.  
  929.  
  930.         =PRG FIRST$ (read the first program loaded into memory)
  931.  
  932. p$=PRG FIRST$
  933.  
  934. This returns the name of the first Basic program installed in the
  935. Amiga's memory. It's used in conjunction with the PRG NEXT$ command to
  936. create a full list of all the currently available programs.
  937.  
  938.  
  939.  
  940.        =PRG NEXT$ (returns the next program installed in memory)
  941.  
  942. p$=PRG NEXT$
  943.  
  944. PRG NETX$ is used after a PRG FIRST$ command to page through all the
  945. programs installed in Amiga's memory. When the end of the list is
  946. reached, a value of "" will be returned by this function. Example:
  947.  
  948.         N$=Prg First$
  949.         While N$<>""
  950.           Print "Program" ";N$
  951.           N$=Prg Next$
  952.         Wend
  953.  
  954.  
  955.  
  956.  
  957.                     =PSEL$ (call program selector)
  958.  
  959. n$=PSEL$("filter"[default$,title1$,title2$]
  960.  
  961. PSEL$ calls up a program selector which is indential to the one used by
  962. the Run Other, Edit Other, Load Others, and New Others commands. This
  963. can be used to select a program in the usual way. The name of this
  964. program will be returned in n$. If the user has aborted from the
  965. selector, n$ will be set to an emptry string "".
  966.  
  967.   "filter" sets the type of programs which will be listed by
  968. instruction. Typical values are:
  969.  
  970.         "*.ACC"    List all the accessories in memory
  971.         "*.AMOS"   Only displays the AMOS programs which have been
  972.                    installed.
  973.         "*.*"      List all programs currently in memory.
  974.  
  975. For further details of the system see the DIR command.
  976.  
  977.          default$        holds the name of a program which will be
  978.                          used as a default.
  979.          title1$,title$  Contains up to two lines of text which will be
  980.                          displayed at the top of the selector.
  981.  
  982. See EXAMPLE 3.4  in the MANUAL folder for a demonstration.
  983.  
  984.  
  985.  
  986. The HELP accessory                                                          32
  987. ==================
  988. Whenever the HELP key is pressed from the Editor window, AMOS
  989. automatically executes an accessory with the name HELP.ACC if it's
  990. available. Unlike normal accessories, this is displayed directly over
  991. the editor window. Special access is provided to the current word you
  992. are editing. The address of this word is placed in an address register
  993. and can be read using the AREG function.
  994.  
  995.  
  996. The editor control keys
  997. =======================
  998. Finally, here's a full list of the various control keys and effects:
  999.  
  1000.  
  1001. Special keys                                                                33
  1002. ------------
  1003. ESC             Takes you to direct mode
  1004.  
  1005.  
  1006. Editing keys
  1007. ------------
  1008. Backspace       Deletes the character to the immediate left of crsr.
  1009. DELete          Deletes the character underneath the cursor
  1010. RETURN          Tokenises the current line. If you move onto a line
  1011.                 and press RETURN it will split the line
  1012. SFT+BCKS/CTRL+Y Deletes current line
  1013. CTRL+U          Undo. Return the last line when in overwrite mode.
  1014. CTRL+Q          Erase the rest of chars in the line from crsr position
  1015. CTRL+I          Insert a line at the current position
  1016.  
  1017.  
  1018. The cursor arrows
  1019. -----------------
  1020. Left,Right       Moves cursor one space to the left/right
  1021. Up,Down          Moves cursor one line up/down
  1022. SHIFT+Left,Right Positions the cursor over the previous/next word
  1023. SHIFT+up,down    Move cursor to the top/bottom line of the current page
  1024. CTRL+up,down     Displays the previous/next page of program
  1025. SHIFT+CTRL+up,dn Move to start/end of text
  1026. AMIGA+up         Scrolls text up without moving the cursor
  1027. AMIGA+down       Scrolls text down under the cursor
  1028. AMIGA+left,right Scroll program to the left/right on the current line
  1029.  
  1030.  
  1031. Program control
  1032. ---------------
  1033. AMIGA+S         Saves your program under a new name
  1034. AMIGA+SHIFT+S     "           "          current name
  1035. AMIGA+L         Loads a program
  1036. AMIGA+P         Pushes the current program into a mem and creates a new
  1037.                 program.
  1038. AMIGA+F         Flips between two progs stored in memory
  1039. AMIGA+T         Displays next program in memory. 
  1040.  
  1041.  
  1042. Cut and Paste                                                               34
  1043. -------------
  1044. CTRL+B          Set the beginning of a block
  1045. CTRL+E          Set end point of a block
  1046. CTRL+C          Cut block
  1047. CTRL+M          Block move
  1048. CTRL+S          Saves the block in memory without erasing it first
  1049. CTRL+P          Paste block at current cursor position
  1050. CTRL+H          Hide block.
  1051.  
  1052.  
  1053. Marks
  1054. -----
  1055. CTRL+SHIFT+(0-9)  Defines a marker at the present cursor position.
  1056. CTRL+(0-9)        Jumps to a mark
  1057.  
  1058.  
  1059. Search/Replace
  1060. --------------
  1061. ALT+UP Arrow    Searches backwards through your program to the next
  1062.                 line which contains a label or procedure definition.
  1063. ALT+DOWN Arrow  Searches down through yur program to find the next
  1064.                 label or procedure definition
  1065. CTRL+F          Find
  1066. CRTL+N          Find Next
  1067. CTRL+R          Replace
  1068.  
  1069.  
  1070. Tabs
  1071. ----
  1072. TAB             Move the entire line at the cursor to the next TAB pos.
  1073. SHIFT+TAB       Move the line to the previous Tab position
  1074. CTRL+TAB        Sets the TAB value
  1075.